fix liuxstandalone build
authorJoey Hess <joeyh@joeyh.name>
Wed, 29 Jan 2025 22:12:00 +0000 (18:12 -0400)
committerJoey Hess <joeyh@joeyh.name>
Wed, 29 Jan 2025 22:12:00 +0000 (18:12 -0400)
Build/LinuxMkLibs.hs
Build/Standalone.hs
Utility/FileIO.hs

index 434b6c31bd4885f2d5582bb0c669d01ad54e2aa2..fad73c4c7623b728f21efc93b6b6f99345b6bd9a 100644 (file)
@@ -26,11 +26,12 @@ import Utility.Path.AbsRel
 import Utility.FileMode
 import Utility.CopyFile
 import Utility.FileSystemEncoding
+import Utility.SystemDirectory
 
 mklibs :: FilePath -> a -> IO Bool
 mklibs top _installedbins = do
-       fs <- dirContentsRecursive top
-       exes <- filterM checkExe fs
+       fs <- dirContentsRecursive (toRawFilePath top)
+       exes <- filterM checkExe (map fromRawFilePath fs)
        libs <- runLdd exes
        
        glibclibs <- glibcLibs
index 367527430aba94f7cbc61e7359bfcd10c0e06a28..36a4d5a0027e922d92f6b492fc2a733f41908ff4 100644 (file)
@@ -25,6 +25,7 @@ import Utility.Path.AbsRel
 import Utility.Directory
 import Utility.Env
 import Utility.FileSystemEncoding
+import Utility.SystemDirectory
 import Build.BundledPrograms
 #ifdef darwin_HOST_OS
 import System.IO
@@ -71,14 +72,15 @@ installGitLibs topdir = do
        -- install git-core programs; these are run by the git command
        createDirectoryIfMissing True gitcoredestdir
        execpath <- getgitpath "exec-path"
-       cfs <- dirContents execpath
+       cfs <- dirContents (toRawFilePath execpath)
        forM_ cfs $ \f -> do
+               let f' = fromRawFilePath f
                destf <- ((gitcoredestdir </>) . fromRawFilePath)
                        <$> relPathDirToFile
                                (toRawFilePath execpath)
-                               (toRawFilePath f)
+                               f
                createDirectoryIfMissing True (takeDirectory destf)
-               issymlink <- isSymbolicLink <$> getSymbolicLinkStatus f
+               issymlink <- isSymbolicLink <$> getSymbolicLinkStatus f'
                if issymlink
                        then do
                                -- many git-core files may symlink to eg
@@ -91,20 +93,20 @@ installGitLibs topdir = do
                                -- Other git-core files symlink to a file
                                -- beside them in the directory. Those
                                -- links can be copied as-is.
-                               linktarget <- readSymbolicLink f
+                               linktarget <- readSymbolicLink f'
                                if takeFileName linktarget == linktarget
-                                       then cp f destf
+                                       then cp f' destf
                                        else do
                                                let linktarget' = progDir topdir </> takeFileName linktarget
                                                unlessM (doesFileExist linktarget') $ do
                                                        createDirectoryIfMissing True (takeDirectory linktarget')
-                                                       L.readFile f >>= L.writeFile linktarget'
+                                                       L.readFile f' >>= L.writeFile linktarget'
                                                removeWhenExistsWith removeLink destf
                                                rellinktarget <- relPathDirToFile
                                                        (toRawFilePath (takeDirectory destf))
                                                        (toRawFilePath linktarget')
                                                createSymbolicLink (fromRawFilePath rellinktarget) destf
-                       else cp f destf
+                       else cp f' destf
        
        -- install git's template files
        -- git does not have an option to get the path of these,
@@ -112,14 +114,14 @@ installGitLibs topdir = do
        -- next to the --man-path, in eg /usr/share/git-core
        manpath <- getgitpath "man-path"
        let templatepath = manpath </> ".." </> "git-core" </> "templates"
-       tfs <- dirContents templatepath
+       tfs <- dirContents (toRawFilePath templatepath)
        forM_ tfs $ \f -> do
                destf <- ((templatedestdir </>) . fromRawFilePath)
                        <$> relPathDirToFile
                                (toRawFilePath templatepath)
-                               (toRawFilePath f)
+                               f
                createDirectoryIfMissing True (takeDirectory destf)
-               cp f destf
+               cp (fromRawFilePath f) destf
   where
        gitcoredestdir = topdir </> "git-core"
        templatedestdir = topdir </> "templates"
index f3bd23ad71f7fcb8ad2a8bb08955a4e8764d7bb8..4b12b2ba0ed8fa7fd18a54926af8fc0984f25e76 100644 (file)
@@ -93,7 +93,6 @@ openTempFile p s = do
 -- file content in that case, unlike the Strings used by the Prelude.
 import Utility.OsPath
 import System.IO (withFile, openFile, openTempFile, IO)
-import qualified System.IO
 import Data.ByteString.Lazy (readFile, writeFile, appendFile)
 import qualified Data.ByteString as B